package com.yance.fim.core.enums;

import io.netty.util.internal.StringUtil;

/**
 * 子命令信号
 *
 * @author yance
 */

public enum Code {
    //默认:无
    NONE,
    //已接受连接
    CONNECTION_ACCEPTED,
    //不可接受的协议连接
    CONNECTION_REFUSED_UNACCEPTABLE_PROTOCOL,
    //建立连接系统错误、系统繁忙，连接被拒绝
    CONNECT__REFUSE_SYSTEM_ERROR,
    //建立连接时客户端ID为空，连接被拒绝
    CONNECT_REFUSE_CLIENTID_IS_EMPTY,
    //建立连接时用户账号为空，连接被拒绝
    CONNECT_REFUSE_USERACCOUNT_IS_EMPTY;

    public static Code toEnum(int ordinal) {
        byte o = (byte) ordinal;
        if (o > NONE.ordinal() &&
                o < Code.values().length) {
            for (Code code : Code.values()) {
                if (code.ordinal() == o) {
                    return code;
                }
            }
        }
        return NONE;
    }

    public static Code toEnum(String code) {
        if (!StringUtil.isNullOrEmpty(code)) {
            for (Code c : Code.values()) {
                if (c.name().equals(code)) {
                    return c;
                }
            }
        }
        return NONE;
    }
}
